#include "principal.h"
#include "ui_principal.h"
#include <QDjango.h>
#include <QDjangoQuerySet.h>
#include <Entidades/especialidad.h>
#include <QDjangoWhere.h>
#include <QMessageBox>
#include <Entidades/medico.h>
#include <Medicos/consultamedico.h>
#include <Pacientes/Consultar_paciente.h>
#include <Proveedores/consultaproveedores.h>
#include <Insumos/consulta_insumos.h>
#include <Usuarios/iniciosesion.h>
#include <Seguros/consulta_seguro.h>
#include <Compras/consulta_compras.h>
#include <Compras/reg_mod_pago_proveedores.h>
#include <Perdidas/regmod_perdida.h>
#include <Orden/reg_mod_orden.h>
#include <Compras/reg_mod_nota_credito_recibida.h>

Principal::Principal(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Principal)
{
    ui->setupUi(this);
    this->setWindowTitle("LabSystem");
    InicioSesion *inicio = new InicioSesion();
    inicio->exec();
    this->usuario = inicio->usua;
    //ui->registroUsuarioPushButton->setVisible(false);

    //Se logueó
    if(this->usuario != NULL)
    {
        ui->iconoUsrLabel->setStyleSheet("image: url(:/Imagenes/usuario-conectado.png);");
        ui->usuarioLabel->setText(this->usuario->getNick());
        ui->cerrarSesionPushButton->setEnabled(true);
        ui->iniciarSesionPushButton->setEnabled(false);
        ui->registroUsuarioPushButton->setEnabled(false);
        ui->actionCerrar_Sesi_n->setEnabled(true);
        ui->botonesGridGroupBox->setEnabled(true);

    }
    else
    {
        ui->iconoUsrLabel->setStyleSheet("image: url(:/Imagenes/usuario-desconectado.png);");
        ui->usuarioLabel->setText("");
        ui->cerrarSesionPushButton->setEnabled(false);
        ui->iniciarSesionPushButton->setEnabled(true);
        ui->registroUsuarioPushButton->setEnabled(true);
        ui->actionCerrar_Sesi_n->setEnabled(false);
        ui->botonesGridGroupBox->setEnabled(false);

    }
}

Principal::~Principal()
{
    delete ui;
}


void Principal::on_ConsMed_clicked()
{
     ConsultaMedico *cons = new ConsultaMedico();
     cons->exec();
     delete cons;
}

void Principal::on_usuariosPushButton_clicked()
{
    //RegMod_Usuarios *user = new RegMod_Usuarios(this);
    //user->exec();
    //delete user;
    Consulta_Usuarios *usu = new Consulta_Usuarios(this);
    usu->exec();
    delete usu;
}

void Principal::on_pushButton_clicked()
{
       Consultar_paciente *consulta = new Consultar_paciente();
       consulta->exec();
       delete consulta;
}

void Principal::on_pushButton_2_clicked()
{
//    Reg_mod_proveedor *regproveedor = new Reg_mod_proveedor();
//    regproveedor->exec();
//    delete regproveedor;
    ConsultaProveedores *prov = new ConsultaProveedores();
    prov->exec();
    delete prov;
}

void Principal::on_Insumos_pushButton_clicked()
{
    Consulta_Insumos *consulta_ins = new Consulta_Insumos();
    consulta_ins->exec();
    delete consulta_ins;
}

void Principal::on_registroUsuarioPushButton_clicked()
{
    RegMod_Usuarios *user = new RegMod_Usuarios(this);
    user->exec();
    delete user;
}

void Principal::on_iniciarSesionPushButton_clicked()
{
    InicioSesion *inicio = new InicioSesion();
    inicio->exec();
    this->usuario = inicio->usua;

    //Se logueó
    if(this->usuario != NULL)
    {
        ui->iconoUsrLabel->setStyleSheet("image: url(:/Imagenes/usuario-conectado.png);");
        ui->usuarioLabel->setText(this->usuario->getNick());
        ui->cerrarSesionPushButton->setEnabled(true);
        ui->iniciarSesionPushButton->setEnabled(false);
        ui->registroUsuarioPushButton->setEnabled(false);
        ui->actionCerrar_Sesi_n->setEnabled(true);
        ui->botonesGridGroupBox->setEnabled(true);

    }
    else
    {
        ui->iconoUsrLabel->setStyleSheet("image: url(:/Imagenes/usuario-desconectado.png);");
        ui->usuarioLabel->setText("");
        ui->cerrarSesionPushButton->setEnabled(false);
        ui->iniciarSesionPushButton->setEnabled(true);
        ui->registroUsuarioPushButton->setEnabled(true);
        ui->actionCerrar_Sesi_n->setEnabled(false);
        ui->botonesGridGroupBox->setEnabled(false);
}
}


void Principal::on_cerrarSesionPushButton_clicked()
{
    ui->iconoUsrLabel->setStyleSheet("image: url(:/Imagenes/usuario-desconectado.png);");
    ui->usuarioLabel->setText("");
    ui->cerrarSesionPushButton->setEnabled(false);
    ui->iniciarSesionPushButton->setEnabled(true);
    ui->registroUsuarioPushButton->setEnabled(true);
    ui->actionCerrar_Sesi_n->setEnabled(false);
    ui->botonesGridGroupBox->setEnabled(false);

}

void Principal::on_salirPushButton_clicked()
{
    this->close();
}

void Principal::on_actionSalir_triggered()
{
    this->close();
}

void Principal::on_actionCerrar_Sesi_n_triggered()
{
    ui->iconoUsrLabel->setStyleSheet("image: url(:/Imagenes/usuario-desconectado.png);");
    ui->usuarioLabel->setText("");
    ui->cerrarSesionPushButton->setEnabled(false);
    ui->iniciarSesionPushButton->setEnabled(true);
    ui->registroUsuarioPushButton->setEnabled(true);
    ui->actionCerrar_Sesi_n->setEnabled(false);
    ui->botonesGridGroupBox->setEnabled(false);
}


void Principal::on_Seguros_clicked()
{
    Consulta_seguro *seguro = new Consulta_seguro();
    seguro->exec();
    delete seguro;
}

void Principal::on_pushButton_3_clicked()
{
//    Reg_mod_compra *regCompra = new Reg_mod_compra();
//    regCompra->exec();
//    delete regCompra;

    Consulta_compras *compra = new Consulta_compras();
    compra->exec();
    delete compra;
}

void Principal::on_pushButton_4_clicked()
{
    Reg_mod_pago_proveedores *regPago = new Reg_mod_pago_proveedores();
    regPago->exec();
    delete regPago;
}

void Principal::on_pushButton_5_clicked()
{
    Regmod_perdida *regPer = new Regmod_perdida();
    regPer->exec();
    delete regPer;
}

void Principal::on_pushButton_ord_clicked()
{
//    Reg_mod_orden *regOrden = new Reg_mod_orden();
//    regOrden->exec();
//    delete regOrden;
    ConsultaOrden *ord = new ConsultaOrden();
    ord->exec();
    delete ord;
}

void Principal::on_notaCreditoRecPushButton_clicked()
{
    Reg_mod_nota_credito_recibida *notaCredReg = new Reg_mod_nota_credito_recibida();
    notaCredReg->exec();
    delete notaCredReg;
}
